// Definition of class GdiVideoRenderer that implements the abstract class
// cricket::VideoRenderer via GDI on Windows.

#ifndef MEDIA_DEVICES_GDIVIDEORENDERER_H_
#define MEDIA_DEVICES_GDIVIDEORENDERER_H_

#ifdef WIN32
#include "base/scoped_ptr.h"
#include "media/videorenderer.h"

namespace cricket {

	class GdiVideoRenderer : public VideoRenderer {
	public:
		GdiVideoRenderer(int x, int y);
		virtual ~GdiVideoRenderer();

		// Implementation of pure virtual methods of VideoRenderer.
		// These two methods may be executed in different threads.
		// SetSize is called before RenderFrame.
		virtual bool SetSize(int width, int height, int reserved);
		virtual bool RenderFrame(const VideoFrame* frame);

	private:
		class VideoWindow;  // forward declaration, defined in the .cc file
		base::scoped_ptr<VideoWindow> window_;
		// The initial position of the window.
		int initial_x_;
		int initial_y_;
	};

}  // namespace cricket

#endif  // WIN32
#endif  // MEDIA_DEVICES_GDIVIDEORENDERER_H_
